perm filename DOLBY.TO[LSP,JRA]1 blob sn#179981 filedate 1975-10-06 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	The question has  come up again this  year about the content  of Math
C00008 ENDMK
CāŠ—;
The question has  come up again this  year about the content  of Math
280.   There  are at least  two responses  to the complaint  that the
course as  given is  not compatible  with that  outlined  in the  CIS
prospectus. The first  answer is that this year's  course will indeed
cover  the  material  listed except  for  a  detailed  examination of
sorting and searching techniques and a study  of generalized business
data  management  systems. Most  of  the  material  was covered  last
semester but certainly not in the order suggested. 

The second response is more to  the point: the course outline is  not
indicative of a modern course in data structures. At best it reflects
the thinking of a certain group established in 1967-1968. Other areas
of computer  science have  changed significantly  in the  intervening
years and  data structures  courses are no  exceptions. So  the first
objection  is  that the  course  outline as  given --a  copy  of that
advertised in  Curriculum68-- is  out  of date.  Second, the  outline
itself  even gives a  distorted view  of the material  suggested from
reading the  accompanying  article in  the  CACM. A  reading  of  the
committee's report giving  a more detailed discussion of  the purpose
and content  of such a course is  more reasonable.  I seriously doubt
the "orthogonal  lists"  are  a crucial  part  of a  course  on  data
structures.  Indeed  I  suspect  that   the  only  reason  for  their
occurrence  in the  abstract is that  they are  listed as  a topic in
Knuth's Chapter 2, Volume 1. (There is more than a passing similarity
between  the  data  structures  abstract  and the  contents  of  that
Volume.)

A more fundamental argument  concerns background of the  contemporary
student in computer  science. In the  earlier days books  and courses
which  dealt mainly  with tricks  and  techniques were  apropos.   The
students were typically semi-professionals  working in the field  and
needed to  upgrade their  skills to handle  clever coding  tricks for
representing data, just as a premium was then placed on being able to
write clever self-modifying code. But the field and its students have
changed.     Many  students  are  coming   from  a  purely  scholastic
environment with no backgrond which would tend to motivate the  study
of techniques common in structuring data. Thus  an integral part of a
introductory course  in data structures must provide motivation. This
is even  more true  in a  program like  that at  San  Jose where  the
students come from such a varied  background.  The course must supply
motivation  while requiring  no prerequisite but  intelligence. If we
cannot presuppose that as a prerequisite then we are in trouble. 

The field has changed as well as the student. We are now beginning to
realize that  trickery and techniques are not  the appropriate way to
program computers.  This realization  is expressed  in the  ideas  of
structurred programming, programming with abstraction, modularity
... . The basic  idea being expressed is "clarity".  Programs must be
clear  and  readible,  easily modifiable  and  hopefully  amenable to
informal  justification  if  not  formal  proof.  Machine   dependent
encoding of data structures and  their associated algorithms are most
definitely not in keeping with this spirit of modern programming.